package com.itheima.knowledge;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @ClassName: BigDecimalTest
 * @Description: 浮点数做运算精度问题；所以引入BigDecimal
 * 使用时需要导包 java.math
 * 创建对象的方式（最好的方式：）
 *      public static BigDecimal valueOf(double val):包装浮点数成为大数据对象。
 * @author: Yrd
 * @date: 2021-11-11 22:43
 */
public class BigDecimalTest {

    private static final Logger log = LoggerFactory.getLogger(BigDecimalTest.class);

    public static void main(String[] args){

        // 打印日志信息
        log.error("error");
        log.warn("warn");
        log.info("info");
        log.debug("debug");
        log.trace("trace");
        // 使用占位符输出日志信息
        String name = "jack";
        Integer age = 18;
        log.info("用户：{},{}", name, age);
        // 将系统异常信息写入日志
        try {
            @SuppressWarnings("unused")
            int i = 1 / 0;
        } catch (Exception e) {
            // e.printStackTrace();
            log.info("出现异常：", e);
        }

        //System.out.println("==================================");
        //double a = 0.1;
        //double b = 0.2;
        //double c = a + b;
        //System.out.println(c);
        //
        ////1.把浮点数转换成大数据对象运算
        //BigDecimal a1 = BigDecimal.valueOf(a);
        //BigDecimal b1 = BigDecimal.valueOf(b);
        //BigDecimal c1 = a1.divide(b1);
        //System.out.println(c1);
        //
        ////结果可能需要继续使用！！！！
        ////BigDecimal 只是解决精度问题的手段，double数据才是我们的目的！！！
        //double rs = c1.doubleValue();
        //System.out.println(rs);

        System.out.println("==================================");
        //自动装箱：可以直接把基本数据类型的值或者变量赋值给包装类。
        //自动拆箱：可以把包装类的变量直接赋值给基本数据类型。
        int a = 12 ;
        Integer a1 = 12 ;  // 自动装箱
        Integer a2 = a ;   // 自动装箱

        double b = 99.9;
        Double b1 = 99.9; // 自动装箱
        Double b2 = b ;   // 自动装箱

        Integer c = 100 ;
        int c1 = c ;      // 自动拆箱

        int d = 12;
        Integer d1 = null; // 引用数据类型的默认值可以为null
        Integer d2 = 0;

        System.out.println("-----------------");
        Integer it = Integer.valueOf(12);  // 手工装箱！
        // Integer it1 = new Integer(12); // 手工装箱！
        Integer it2 = 12;


        Integer it3 = 111 ;
        int it33 = it3.intValue(); // 手工拆箱
        int it333 = it3;

    }
}
















